package com.hdp.kotlin_samples.middle

/**
 * author:hdp
 * on:2019/6/13:10:55
 * desc:
 * Kotlin中的数据类data class
 *
 * 1、一行代码抵得上java几十行代码，一个文件抵得上java一个包
 *
 * 2、用data关键词来声明一个数据类，除了会自动实现get set（这个取决于val还是var修饰字段），
 *      还会自动生成equals hashcode toString
 *
 */


/**
 * Kotlin会为类的参数自动实现get set方法
 */
class Student(
    val name: String = "",
    val age: Int = 1,
    val gender: Int = 2,
    var address: String = ""
)

/*
* 用data关键词来声明一个数据类，除了会自动实现get set，还会自动生成equals hashcode toString
**/
data class Student2(
    var name: String? = "",
    val age: Int? = 3,
    val gender: Int? = 4,
    var address: String? = ""
)

fun main() {
    val student = Student()
    println(student)
    val student2 = Student2()
    println(student2)
}

